home *** CD-ROM | disk | FTP | other *** search
/ DarkBASIC - The Ultimate 3D Game Creator / PCactive 8 CD1 - DarkBasic.iso / SOFTWARE / DEMOS / Fast2D / fast2d.dba
Encoding:
Text File  |  2000-09-19  |  1.6 KB  |  79 lines

  1. Rem * Title  : 500 Sprite Demo
  2. Rem * Author : DBS-LB
  3. Rem * Date   : 20th August 2000
  4. rem Five Hundred Sprite Demo
  5. hide mouse
  6. sync rate 0
  7. sync on
  8.  
  9. rem Number of sprites
  10. spritemax=500
  11.  
  12. rem Make simple sun sprite
  13. create bitmap 1,256,128
  14. for r=0 to 359
  15. ink rgb(255,rnd(100)+155,0),0
  16. length=rnd(30)+33
  17. line 64,64,64+cos(r)*length,64+sin(r)*length
  18. line 64+1,64+1,64+1+cos(r)*length,64+1+sin(r)*length
  19. next r
  20. ink 0,0
  21. circle 64-16,64,16 : circle 64-16,64-8,8
  22. circle 64+16,64,16 : circle 64+16,64-8,8
  23. line 64-16,88,64+16,88
  24. blur bitmap 1,2
  25. copy bitmap 1,0,0,127,127,1,128,0,128+31,0+31
  26. get image 1,128,0,128+32,0+32
  27. for i=2 to (spritemax/100)
  28.     fade bitmap 1,66
  29.     get image i,128,0,128+32,0+32
  30. next i
  31. delete bitmap 1
  32.  
  33. rem Make sprites (create in reverse order)
  34. for s=1 to spritemax
  35.     sorder=(spritemax+1)-s
  36.  
  37.     rem Tells the sprite NOT to save its background
  38.     set sprite sorder,0,1
  39.  
  40.     sprite sorder,rnd(640),96+rnd(320),1
  41.     offset sprite sorder,16,16
  42. next s
  43.  
  44. rem Set text
  45. set text size 30
  46. set text font "Arial"
  47. ink rgb(255,255,255),0
  48.  
  49. rem Main loop
  50. do
  51.  
  52. rem Clear screen
  53. cls 0
  54.  
  55. rem User prompt
  56. ink rgb(0,0,128),0 :box 0,0,639,29 : ink rgb(255,255,255),0
  57. center text 320,0,str$(spritemax)+" Sprites - screen FPS = "+str$(screen fps())
  58.  
  59. rem Move sprites
  60. for s=1 to spritemax
  61.     if s>=spritemax-(spritemax/5)
  62.         x=sprite x(s)+(rnd(2)-1)*3
  63.         y=sprite y(s)-3-rnd(3)
  64.         if y<48 then y=480+16
  65.     else
  66.         x=sprite x(s)+(rnd(2)-1)*3
  67.         y=sprite y(s)+(rnd(2)-1)*3
  68.         if y<48 then y=48
  69.     endif
  70.     i=((99+s)/100)
  71.     sprite s,x,y,i
  72. next s
  73.  
  74. rem Update screen
  75. sync
  76.  
  77. rem End of loop
  78. loop
  79.